// aui-scroll.js  @author 流浪男
!(function(window) {
	'use strict';
	var isToBottom = false,
		isMoved = false;
	var auiScroll = function(params, callback) {
		this.extend(this.params, params);
		this._init(params, callback)
	};
	auiScroll.prototype = {
		params: {
			listren: false,
			distance: 100
		},
		_init: function(params, callback) {
			var self = this;
			if (self.params.listen) {
				document.body.addEventListener("touchmove", function(e) {
					self.scroll(callback)
				});
				document.body.addEventListener("touchend", function(e) {
					self.scroll(callback)
				})
			}
			window.onscroll = function() {
				self.scroll(callback)
			}
		},
		scroll: function(callback) {
			var self = this;
			var clientHeight = document.documentElement.scrollTop === 0 ? document.body.clientHeight : document.documentElement.clientHeight;
			var scrollTop = document.documentElement.scrollTop === 0 ? document.body.scrollTop : document.documentElement.scrollTop;
			var scrollHeight = document.documentElement.scrollTop === 0 ? document.body.scrollHeight : document.documentElement.scrollHeight;
			if (scrollHeight - scrollTop - self.params.distance <= window.innerHeight) {
				isToBottom = true;
				if (isToBottom) {
					callback({
						"scrollTop": scrollTop,
						"isToBottom": true
					})
				}
			} else {
				isToBottom = false;
				callback({
					"scrollTop": scrollTop,
					"isToBottom": false
				})
			}
		},
		extend: function(a, b) {
			for (var key in b) {
				if (b.hasOwnProperty(key)) {
					a[key] = b[key]
				}
			}
			return a
		}
	};
	window.auiScroll = auiScroll;
})(window);
